package pkg

import (
	"fmt"
	"github.com/smartwalle/alipay/v3"
	"meituan-waimai/config"
	"net/url"
)

var (
	err error
)

func AliPay(orderNo string, orderTitle string, orderAmount string) string {
	aData := config.ConfigData.AliPay
	var privateKey = aData.PrivateKey // 必须，上一步中使用 RSA签名验签工具 生成的私钥
	var client *alipay.Client
	client, err = alipay.New(aData.AppId, privateKey, false)
	if err != nil {
		fmt.Println(err)
		return ""
	}

	//// 加载应用公钥证书
	//if err = client.LoadAppCertPublicKeyFromFile("appCertPublicKey_2017011104995404.crt"); err != nil {
	//	// 错误处理
	//}
	//
	//// 加载支付宝根证书
	//if err = client.LoadAliPayRootCertFromFile("alipayRootCert.crt"); err != nil {
	//	// 错误处理
	//}
	//
	//// 加载支付宝公钥证书
	//if err = client.LoadAlipayCertPublicKeyFromFile("alipayCertPublicKey_RSA2.crt"); err != nil {
	//	// 错误处理
	//}
	//
	//// 加载内容密钥，可选
	//if err = client.SetEncryptKey("FtVd5SgrsUzYQRAPBmejHQ=="); err != nil {
	//	// 错误处理
	//}

	var p = alipay.TradeWapPay{}
	p.NotifyURL = "http://7c44ef45.r11.cpolar.top/pay/notify" //异步回调
	p.ReturnURL = "https://baidu.com"                         //同步回调
	p.Subject = orderTitle
	p.OutTradeNo = orderNo
	p.TotalAmount = orderAmount
	p.ProductCode = "QUICK_WAP_WAY"
	var uRL *url.URL
	uRL, err = client.TradeWapPay(p)
	if err != nil {
		fmt.Println(err)
	}

	// 这个 payURL 即是用于打开支付宝支付页面的 URL，可将输出的内容复制，到浏览器中访问该 URL 即可打开支付页面。
	var payURL = uRL.String()
	return payURL
}
